package com.demo.java.OD51_100.OD69;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【连续字母长度】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145613682
 */
public class OdMain {
    private static void solve(String line, int k) {
        int[] chars = new int[26];  // 用于记录每个字符的最大连续次数
        int tmp = 1;  // 当前字符的连续计数
        char preValue = line.charAt(0);  // 第一个字符

        // 遍历字符串
        for (int j = 1; j < line.length(); ++j) {
            if (preValue == line.charAt(j)) {
                tmp++;  // 如果当前字符与前一个字符相同，增加连续次数
            } else {
                chars[preValue - 'A'] = Math.max(chars[preValue - 'A'], tmp);  // 更新字符的最大连续次数
                preValue = line.charAt(j);  // 更新前一个字符
                tmp = 1;  // 重置连续计数
            }
        }
        // 更新最后一个字符的连续次数
        chars[preValue - 'A'] = Math.max(chars[preValue - 'A'], tmp);

        // 将所有非零的连续次数放入列表
        List<Integer> myList = new ArrayList<>();
        for (int j = 0; j < 26; ++j) {
            if (chars[j] != 0) {
                myList.add(chars[j]);
            }
        }

        // 排序并输出第 k 个最大值
        myList.sort((a1, a2) -> a2 - a1);  // 按降序排序
        if (myList.size() < k) {
            System.out.println(-1);  // 如果连续次数不足 k 个，输出 -1
        } else {
            System.out.println(myList.get(k - 1));  // 输出第 k 个最大值
        }
    }

    public static void main(String[] args) {
        try {
            Scanner s = new Scanner(System.in);
            String line = s.nextLine();  // 读取字符串
            int k = Integer.parseInt(s.nextLine());  // 读取 k 值
            solve(line, k);  // 调用解决方法
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("input error");
        }
    }
}